/*!
    \copyright  Copyright (c) 2024 - 2025 Qualcomm Technologies International, Ltd.
                All Rights Reserved.
                Qualcomm Technologies International, Ltd. Confidential and Proprietary.
    \file
    \addtogroup le_audio_client
    @{
    \brief      Private types and functions for LE Audio Client Unicast Source
*/

#ifndef LE_AUDIO_CLIENT_UNICAST_PRIVATE_H_
#define LE_AUDIO_CLIENT_UNICAST_PRIVATE_H_

#include "qualcomm_connection_manager.h"

#if defined(INCLUDE_LE_AUDIO_UNICAST_SOURCE)

/*! Maximum audio configurations supported at the same time. Since profiles only supports two
 *  configuration partially, keeping the maximum audio configuration as one for now. */
#define LE_AUDIO_CLIENT_MAX_AUDIO_CONFIGS_SUPPORTED    1

#ifdef INCLUDE_LE_APTX_ADAPTIVE
extern const QCOM_CON_MANAGER_CIS_QHS_PARAMS_T aptx_adaptive_cis_qhs_map[];

#define leAudioClient_GetAptXAdaptiveCisQhsMapConfig()  aptx_adaptive_cis_qhs_map

#endif /* INCLUDE_LE_APTX_ADAPTIVE */


/*! \brief Audio Configuration Information */
typedef struct
{
    /*! Target latency */
    uint8           target_latency;

    /*! Stream capability for sink */
    uint32          sink_stream_capability;

    /*! Stream capability for source */
    uint32          source_stream_capability;

    /*! Preferred ISOAL framing */
    uint8           framing;

    /*! PHY from central */
    uint8           phy_ctop;

    /*! PHY from peripheral */
    uint8           phy_ptoc;

    /*! RTN from central to peripheral */
    uint8           rtn_ctop;

    /*! RTN from peripheral to central */
    uint8           rtn_ptoc;
} le_audio_client_audio_config_t;

/*! \brief Return audio configuration for the specified audio context and codec type */
const le_audio_client_audio_config_t* leAudioClient_GetAudioConfig(ServiceHandle group_handle,
                                                                   CapClientContext audio_context,
                                                                   uint8 codec);

#endif /* INCLUDE_LE_AUDIO_UNICAST_SOURCE */

#endif /* LE_AUDIO_CLIENT_UNICAST_PRIVATE_H_ */

/*! @} */
